74 research outputs found
Automating Deductive Verification for Weak-Memory Programs
Writing correct programs for weak memory models such as the C11 memory model
is challenging because of the weak consistency guarantees these models provide.
The first program logics for the verification of such programs have recently
been proposed, but their usage has been limited thus far to manual proofs.
Automating proofs in these logics via first-order solvers is non-trivial, due
to reasoning features such as higher-order assertions, modalities and rich
permission resources. In this paper, we provide the first implementation of a
weak memory program logic using existing deductive verification tools. We
tackle three recent program logics: Relaxed Separation Logic and two forms of
Fenced Separation Logic, and show how these can be encoded using the Viper
verification infrastructure. In doing so, we illustrate several novel encoding
techniques which could be employed for other logics. Our work is implemented,
and has been evaluated on examples from existing papers as well as the Facebook
open-source Folly library.Comment: Extended version of TACAS 2018 publicatio
Uniqueness Typing for Resource Management in Message-Passing Concurrency
We view channels as the main form of resources in a message-passing
programming paradigm. These channels need to be carefully managed in settings
where resources are scarce. To study this problem, we extend the pi-calculus
with primitives for channel allocation and deallocation and allow channels to
be reused to communicate values of different types. Inevitably, the added
expressiveness increases the possibilities for runtime errors. We define a
substructural type system which combines uniqueness typing and affine typing to
reject these ill-behaved programs
Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning Trajectories
This working group asserts that Program Comprehension (ProgComp) plays a critical part in the process of writing programs. For example, this paper is written from a basic draft that was edited and revised until it clearly presented our idea. Similarly, a program is written incrementally, with each step tested, debugged and extended until the program achieves its goal. Novice programmers should develop program comprehension skills as they learn to code so that they are able both to read and reason about code created by others, and to reflect on their code when writing, debugging or extending it. To foster such competencies our group identified two main goals: (g1) to collect and define learning activities that explicitly address key components of program comprehension and (g2) to define tentative theoretical learning trajectories that will guide teachers as they select and sequence those learning activities in their CS0/CS1/CS2 or K-12 courses. The WG has completed the first goal and laid down a strong foundation towards the second goal as presented in this report. After a thorough literature review, a detailed description of the Block Model is provided, as this model has been used with a dual purpose, to classify and present an extensive list of ProgComp tasks, and to describe a possible learning trajectory for a complex task, covering different cells of the Block Model matrix. The latter is intended to help instructors to decompose complex tasks and identify which aspects of ProgComp are being fostered
Toward a History of Women Projectionists in Post-war British Cinemas
Cinema projection is usually understood to be a male-dominated occupation, with the projection box characterised as a gendered space separate from the more typically feminine front-of-house roles. Although this is a fairly accurate representation, it risks eliminating all traces of women’s labour in the projection box. Previous work by David R. Williams (1997) and Rebecca Harrison (2016) has addressed the role of women projectionists during wartime, and this article begins to excavate a hidden history of women projectionists in a peacetime context. The article uses oral testimony from two women – Florence Barton and Joan Pearson – who worked as projectionists in the mid-twentieth century. Their accounts are presented in the article as two portraits, which aim to convey a sense of the women’s everyday lives in the projection box, as well as think about implications that their stories have for our understanding of women’s roles in projection more broadly. Of particular significance to both Barton and Pearson are the relationships that they had with their male colleagues, the possibilities afforded for career progression (and the different paths taken by the women) and the nature of projection work. The women’s repeated assertions that they were expected to do the same jobs as their male counterparts form a key aspect of the interviews, which suggest there is scope for further investigation of women’s labour specifically in projection boxes and in cinemas more generally
- …